iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
Software Development

30天收斂後端開發心法系列 第 21

30天收斂後端開發心法 - (21) HTTP Request

  • 分享至 

  • xImage
  •  

當使用者透過 瀏覽器、App 或 API Client(如 Postman) 按下任何會導致網頁跳轉或資料傳輸的操作時,就會發送一個 HTTP 請求(Request)。

這個請求會經由 HTTP 或 HTTPS 協定 傳輸,並在過程中透過 DNS 將網址解析為實際的 IP 位址,以便找到對應的伺服器。

什麼是 HTTP 協定?

HTTP(HyperText Transfer Protocol)超文本傳輸協定 是一種讓用戶端與伺服器之間進行通訊的協定。

當網際網路開始流行時,需要一套標準格式來傳輸資料。就像郵件需要寄件人與收件人資訊一樣,HTTP 也必須定義明確的資料格式,以利伺服器正確處理請求與回應。

HTTP Request 的格式

HTTP Request 一般包含兩個主要部分:

1. Request Header(請求標頭)

這裡包含與請求相關的元資料,常見欄位有:

  • Request Method(請求方法):如 GET、POST、PUT、DELETE 等
  • GET:參數會附加在 URL 上(不適合傳遞敏感資料)。
  • POST:參數放在 Request Body 中,較適合傳送密碼、信用卡號等機密資料。
  • Accept-Language:指定希望回應的語言,通常會根據瀏覽器或系統語言自動設定。
2. Request Body(請求內容)

當使用 POST、PUT 等方法時,Request Body 才會被使用。

常見的 Content-Type 有:

  • application/json:使用 JSON 格式,可包含字串、數字、布林值等資料。
  • multipart/form-data:可用於上傳檔案,搭配表單欄位(例如圖檔上傳)。
  • application/x-www-form-urlencoded:表單資料會被編碼成 key=value&key2=value2 格式,適合一般表單。

為什麼現在都用 HTTPS?

HTTPS = HTTP + SSL/TLS 加密層

相較於 HTTP,HTTPS 提供了資料加密與傳輸安全性,防止資料在傳輸過程中被竊聽或竄改。

差異總結:

項目 HTTP HTTPS
基礎協定 TCP/IP TCP/IP + SSL/TLS
資料是否加密 無加密 傳輸前加密
安全性 高(可防止竊聽、中間人攻擊)
常見用途 測試、內網、開發 正式環境、登入、金流、API 請求等

建立連線的流程

TCP 的三次握手(HTTP 與 HTTPS 都會執行)

Client → Server: 傳送 SYN 封包,請求建立連線,並附帶初始序列號。
Server → Client: 回傳 SYN-ACK,表示收到並同意建立連線。
Client → Server: 傳送 ACK 確認封包,連線正式建立。

TLS 握手流程(僅 HTTPS 使用)

Client 發起握手請求,並提供支援的加密演算法。
Server 回傳憑證(通常包含公鑰),以及選定的加密演算法。
Client 驗證憑證,產生 session key,並用 Server 公鑰加密送出。
Server 使用私鑰解密 session key。
之後雙方使用對稱加密開始安全通訊。


上一篇
30天收斂後端開發心法 - (20) Git Hook
下一篇
30天收斂後端開發心法 - (22) OAuth 2.0
系列文
30天收斂後端開發心法30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言